🎖️GitЯра🎖️
fix_dispatchers.py feat/batch-nodeinfos (a74d5d47) Text, 3.36 KB
Tff7b72import T7ee787os
Tff7b72import T7ee787re
Te6edf3files Tff7b72= Tb4b4b4[
Ta5d6ff"Ta5d6ffcore/data/src/commonMain/kotlin/org/meshtastic/core/data/manager/CommandSenderImpl.ktTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcore/data/src/commonMain/kotlin/org/meshtastic/core/data/manager/MeshActionHandlerImpl.ktTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcore/data/src/commonMain/kotlin/org/meshtastic/core/data/manager/MeshConfigFlowManagerImpl.ktTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcore/data/src/commonMain/kotlin/org/meshtastic/core/data/manager/MeshConfigHandlerImpl.ktTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcore/data/src/commonMain/kotlin/org/meshtastic/core/data/manager/MeshConnectionManagerImpl.ktTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcore/data/src/commonMain/kotlin/org/meshtastic/core/data/manager/MeshDataHandlerImpl.ktTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcore/data/src/commonMain/kotlin/org/meshtastic/core/data/manager/MeshMessageProcessorImpl.ktTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcore/data/src/commonMain/kotlin/org/meshtastic/core/data/manager/MqttManagerImpl.ktTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcore/data/src/commonMain/kotlin/org/meshtastic/core/data/manager/NeighborInfoHandlerImpl.ktTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcore/data/src/commonMain/kotlin/org/meshtastic/core/data/manager/PacketHandlerImpl.ktTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffcore/data/src/commonMain/kotlin/org/meshtastic/core/data/manager/TracerouteHandlerImpl.ktTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fffeature/connections/src/commonMain/kotlin/org/meshtastic/feature/connections/ScannerViewModel.ktTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fffeature/map/src/commonMain/kotlin/org/meshtastic/feature/map/BaseMapViewModel.ktTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fffeature/messaging/src/commonMain/kotlin/org/meshtastic/feature/messaging/MessageViewModel.ktTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fffeature/messaging/src/commonMain/kotlin/org/meshtastic/feature/messaging/QuickChatViewModel.ktTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fffeature/messaging/src/commonMain/kotlin/org/meshtastic/feature/messaging/ui/contact/ContactsViewModel.ktTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fffeature/node/src/commonMain/kotlin/org/meshtastic/feature/node/detail/CommonNodeRequestActions.ktTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fffeature/node/src/commonMain/kotlin/org/meshtastic/feature/node/detail/NodeManagementActions.ktTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fffeature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/debugging/DebugViewModel.ktTa5d6ff"
Tb4b4b4]
Tff7b72for Te6edf3file_path Tff7b72in Te6edf3filesTb4b4b4:
Tff7b72if Tff7b72not Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffexistsTb4b4b4(Te6edf3file_pathTb4b4b4)Tb4b4b4:
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffFile not found: Tffd700{Te6edf3file_pathTffd700}Ta5d6ff"Tb4b4b4)
Tff7b72continue
Tff7b72with Tffa657openTb4b4b4(Te6edf3file_pathTb4b4b4, Ta5d6ff'Ta5d6ffrTa5d6ff'Tb4b4b4) Tff7b72as Te6edf3fTb4b4b4:
Te6edf3content Tff7b72= Te6edf3fTff7b72.Td2a8ffreadTb4b4b4(Tb4b4b4)
T8b949e# Replace Dispatchers.IO with ioDispatcher
Te6edf3new_content Tff7b72= Te6edf3reTff7b72.Td2a8ffsubTb4b4b4(Ta5d6ffrTa5d6ff'Ta5d6ff\Ta5d6ffbDispatchersTa5d6ff\Ta5d6ff.IOTa5d6ff\Ta5d6ffbTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffioDispatcherTa5d6ff'Tb4b4b4, Te6edf3contentTb4b4b4)
Te6edf3new_content Tff7b72= Te6edf3reTff7b72.Td2a8ffsubTb4b4b4(Ta5d6ffrTa5d6ff'Ta5d6ff\Ta5d6ffbkotlinxTa5d6ff\Ta5d6ff.coroutinesTa5d6ff\Ta5d6ff.DispatchersTa5d6ff\Ta5d6ff.IOTa5d6ff\Ta5d6ffbTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffioDispatcherTa5d6ff'Tb4b4b4, Te6edf3new_contentTb4b4b4)
Tff7b72if Te6edf3new_content Tff7b72== Te6edf3contentTb4b4b4:
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffNo changes in Tffd700{Te6edf3file_pathTffd700}Ta5d6ff"Tb4b4b4)
Tff7b72continue
T8b949e# Add import if missing
Tff7b72if Ta5d6ff'Ta5d6ffimport org.meshtastic.core.common.util.ioDispatcherTa5d6ff' Tff7b72not Tff7b72in Te6edf3new_contentTb4b4b4:
T8b949e# Find the package line to insert after, or just after other imports
Te6edf3lines Tff7b72= Te6edf3new_contentTff7b72.Td2a8ffsplitlinesTb4b4b4(Tb4b4b4)
Te6edf3inserted Tff7b72= Tff7b72False
Tff7b72for Te6edf3iTb4b4b4, Te6edf3line Tff7b72in Tffa657enumerateTb4b4b4(Te6edf3linesTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3lineTff7b72.Td2a8ffstartswithTb4b4b4(Ta5d6ff'Ta5d6ffpackage Ta5d6ff'Tb4b4b4)Tb4b4b4:
Te6edf3linesTff7b72.Td2a8ffinsertTb4b4b4(Te6edf3i Tff7b72+ T79c0ff2Tb4b4b4, Ta5d6ff'Ta5d6ffimport org.meshtastic.core.common.util.ioDispatcherTa5d6ff'Tb4b4b4)
Te6edf3inserted Tff7b72= Tff7b72True
Tff7b72break
Tff7b72if Tff7b72not Te6edf3insertedTb4b4b4:
Te6edf3linesTff7b72.Td2a8ffinsertTb4b4b4(T79c0ff0Tb4b4b4, Ta5d6ff'Ta5d6ffimport org.meshtastic.core.common.util.ioDispatcherTa5d6ff'Tb4b4b4)
Te6edf3new_content Tff7b72= Ta5d6ff'Tffea00\nTa5d6ff'Tff7b72.Td2a8ffjoinTb4b4b4(Te6edf3linesTb4b4b4) Tff7b72+ Ta5d6ff'Tffea00\nTa5d6ff'
T8b949e# Check if Dispatchers is still used
Tff7b72if Ta5d6ff'Ta5d6ffDispatchers.Ta5d6ff' Tff7b72not Tff7b72in Te6edf3new_contentTb4b4b4:
Te6edf3new_content Tff7b72= Te6edf3reTff7b72.Td2a8ffsubTb4b4b4(Ta5d6ffrTa5d6ff'Ta5d6ff^import kotlinxTa5d6ff\Ta5d6ff.coroutinesTa5d6ff\Ta5d6ff.DispatchersTa5d6ff\Ta5d6ffnTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff'Tb4b4b4, Te6edf3new_contentTb4b4b4, Te6edf3flagsTff7b72=Te6edf3reTff7b72.Td2a8ffMULTILINETb4b4b4)
Tff7b72with Tffa657openTb4b4b4(Te6edf3file_pathTb4b4b4, Ta5d6ff'Ta5d6ffwTa5d6ff'Tb4b4b4) Tff7b72as Te6edf3fTb4b4b4:
Te6edf3fTff7b72.Td2a8ffwriteTb4b4b4(Te6edf3new_contentTb4b4b4)
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffFixed Tffd700{Te6edf3file_pathTffd700}Ta5d6ff"Tb4b4b4)
Served by rngit 1.5.0 - Generated in 0.06s